package AlgebraLinear.Matriz;

public class Matriz {

	private double dados[][];
	
	public Matriz(String entrada){
		this.atualizaMatriz(entrada);
	}
	
	public void atualizaMatriz(String entrada){
		entrada = entrada.replaceAll("[(]","");
		entrada = entrada.replaceAll("[)]","");
		try{
			String[] linha = entrada.split(";");
			this.dados = new double[linha.length][linha[1].split(",").length];
			for (int i = 0; i < linha.length; i++) {
				String[] coluna = linha[i].split(",");
				for (int j = 0; j < coluna.length; j++) {
					this.dados[i][j] = Double.parseDouble(coluna[j]);
				}
			}
		}catch(IndexOutOfBoundsException ex){
			throw new IndexOutOfBoundsException("A matriz inválida. Não possui números iguais de colunas");
		}catch(Exception ex){
			System.out.println(ex.getMessage());
			throw new IllegalArgumentException("Dados inválidos");
		}
		
	}
	
	public String toString(){
		String saida = "";
		for (int i = 0; i < this.dados.length; i++) {
			for (int j = 0; j < this.dados[i].length; j++) {
				saida += this.dados[i][j]+"\t";
			}
			saida +="\n";
		}
		return saida;
	}
}
